// 加班
import http from '../http'

/**
 * 删除加班数据
 *
 * @param params 包含userId和userName的对象
 * @returns 删除的加班数据行数组
 */
export async function removeOvertime(params: { userId: number, userName: string }) {
  const res = await http({
    path: '/dev-api/oa/overtimeProcessData/remove',
    method: 'DELETE',
    params,
  })
  return res
}

/**
 * 向服务器添加流程数据
 *
 * @param leaveUser 离职用户信息
 * @param processUser 流程用户信息
 * @returns 服务器返回的结果
 */
export async function addOvertimeProcess(leaveUser: any, processUser: any) {
  const res = await http({
    method: 'POST',
    path: `/dev-api/oa/overtimeProcessData`,
    params: {
      ...leaveUser,
      ...processUser,
    },
  })

  return res;
}
/**
 * 异步函数，用于添加加班记录
 *
 * @param params 请求参数，对象类型
 * @returns 返回服务器响应中的状态码
 */
export async function addOvertime(params: any) {
  const { code } = await http({
    path: '/dev-api/oa/overtime',
    method: 'POST',
    params,
  })
  return code
}

/**
 * 通过用户参数搜索数据
 *
 * @param params 用户参数对象
 * @returns 返回搜索结果的状态码
 */
export async function searchByUser(params: any) {
  return await http({
    path: '/dev-api/oa/overtime/searchbyuser',
    method: 'GET',
    params,
  })
}
/**
 * 根据用户参数搜索历史记录
 *
 * @param params 用户查询参数
 * @returns 返回查询结果的状态码
 */
export async function searchHistoryByUser(params: any) {
  return await http({
    path: '/dev-api/oa/overtime/searchhisbyuser',
    method: 'GET',
    params,
  })
}

/**
 * 更新加班审批状态
 *
 * @param id 加班审批ID
 * @returns 更新结果
 */
export async function updateOvertimePass(id: number) {
  return await http({
    method: 'PUT',
    path: '/dev-api/oa/overtime/pass/',
    params: {
      id,
    },
  })
}

/**
 * 更新未通过的加班申请
 *
 * @param id 加班申请的ID
 * @returns 更新后的加班申请信息
 */
export async function updateOvertimeNoPass(id: number) {
  return await http({
    method: 'PUT',
    path: '/dev-api/oa/overtime/nopass/',
    params: {
      id,
    },
  })
}

export async function list(params: any) {
  const { rows } = await http({
    method: 'GET',
    path: '/dev-api/oa/overtime/list',
    params,
  })
  return rows;
}